package com.xmy.cultivate.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xmy.cultivate.entity.EnrollInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xmy.cultivate.entity.SchoolNewStudent;
import com.xmy.cultivate.entity.response.EnrollRanking;
import com.xmy.cultivate.entity.response.EnrollSubjectRanking;
import com.xmy.cultivate.entity.response.EnrollTeamRanking;
import com.xmy.cultivate.entity.views.EnrollDetail;

import java.util.List;

/**
 * <p>
 * 招生数据 服务类
 * </p>
 *
 * @author min
 * @since 2023-02-10
 */
public interface IEnrollInfoService extends IService<EnrollInfo> {


    public abstract List<EnrollRanking> rankingList(String type, String startDate, String endDate, String schoolId, String subjectsId, String trackId);

    public abstract List<EnrollRanking> incomeRankingList(String type, String startDate, String endDate, String schoolId, String subjectsId);

    public abstract List<EnrollSubjectRanking> subjectRankingList(String startDate, String endDate, String schoolId);

    public abstract List<EnrollTeamRanking> teamRankingList(String startDate, String endDate, String schoolId);

    public abstract List<EnrollTeamRanking> teamRankingDetail(String teamId, String startDate, String endDate, String schoolId);

    public abstract EnrollTeamRanking personData(Long teacherId, String startDate, String endDate);

    public abstract List<EnrollRanking> regetRanking(List<EnrollRanking> enrollRankingList, int sortType);

    public abstract List<SchoolNewStudent> schoolNewData(QueryWrapper queryWrapper);

    /**
     * 招生核对率
     */
    public abstract IPage<EnrollDetail> getParticularsRate(IPage<?> page, String schoolId, String subjectsId, String startDate, String endDate, String checkType, String studentName, String teacherName, String yearClassId, String yearPart, String quarterNum, String isTrueData, String type, Integer isDetails);

}
